package com.zero.manager_following.common;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 功能：向前端返回一个统一的结果
 * 作者：zero
 * 日期：2024/9/13 12:21
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Result {
    public static final String CODE_SUCCESS = "200";
    public static final String CODE_AUTH_ERROR = "401";
    public static final String CODE_SYS_ERROR = "500";

    /**
     * 请求的返回编码 200 401 404 500
     * 编码表示这次请求是否成功
     * 可以看出失败类型是什么
     */
    private String code;
    /**
     * msg返回请求的详细信息
     */
    private String msg;
    /**
     * 数据是从data返回给前端
     * user extends Object
     * list extends Object
     * map extends Object
     */
    private Object data;

    public static Result success(){
        return Result.builder().code(CODE_SUCCESS).msg("请求成功").build();
    }

    public static Result success(Object data){
        return new Result(CODE_SUCCESS,"请求成功",data);
    }

    public static Result error(String msg){
        return new Result(CODE_SYS_ERROR,msg,null);
    }

    public static Result error(String code, String msg){
        return new Result(code ,msg,null);
    }
}